home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / linkedit / linkedit.lha / link-edit / LinkEdit / link_edit_mn.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-03-13  |  3.2 KB  |  154 lines

  1. /* The main module for wave */
  2.  
  3. #include <stdio.h>
  4. #include <X11/Xlib.h>
  5. #include "box_types.h"
  6. #include "link_types.h"
  7.  
  8. #include "link_edit_types.h"
  9.  
  10. Display *dpy;
  11. double xppmm,yppmm;  /* x and y pixels per millimeter */
  12. double WidthMM,HeightMM;
  13.  
  14. BoxStatus box_status;
  15. BoxData box_data;
  16.  
  17. LinkStatus link_status;
  18. LinkData link_data;
  19.  
  20. LinkEditStatus link_edit_status;
  21. LinkEditData link_edit_data;
  22.  
  23. main(argc,argv)
  24.  
  25. int argc;
  26. char *argv[];
  27.  
  28. {
  29.   Window top;
  30.   XWindowAttributes xwa;
  31.   XEvent event;
  32.  
  33.   /* Open up the connection to the X Server */
  34.  
  35.   if((dpy = XOpenDisplay(NULL)) == NULL) {
  36.     fprintf(stderr,"Could not open server.\n");
  37.     exit(1);
  38.    }
  39.  
  40.   /* Get some basic information */
  41.  
  42.   WidthMM = (double) DisplayWidthMM(dpy,DefaultScreen(dpy));
  43.   HeightMM = (double) DisplayHeightMM(dpy,DefaultScreen(dpy));
  44.   xppmm = (double) DisplayWidth(dpy,DefaultScreen(dpy))/WidthMM;
  45.   yppmm = (double) DisplayHeight(dpy,DefaultScreen(dpy))/HeightMM;
  46.  
  47.  
  48.   /* initialize box */
  49.   BoxSetUp(&box_data);
  50.   BoxInitialize(&box_status,&box_data);
  51.  
  52.   /* initialize client */
  53.   LinkSetUp(&link_data);
  54.   LinkInitialize(&link_status,&link_data);
  55.  
  56.   /* initialize link_edit */
  57.   LinkEditSetUp(&link_edit_data);
  58.   /* Connect clients */
  59.   link_edit_status.link_status = (VOID *) (&link_status);
  60.   link_edit_status.box_status = (VOID *) (&box_status);
  61.  
  62.   LinkEditInitialize(&link_edit_status,&link_edit_data);
  63.  
  64.   while(1){
  65.  
  66.      XNextEvent(dpy,&event);
  67.      top = event.xany.window;
  68.  
  69.      if(top == link_status.TopWindow ||
  70.           top == link_status.MessageWindow ||
  71.           top == link_status.TitleWindow) {
  72.         LinkEvent(&link_status,&event);
  73.         continue;
  74.        }
  75.  
  76.      if(top == box_status.TopWindow ||
  77.           top == box_status.MessageWindow ||
  78.           top == box_status.TitleWindow) {
  79.  
  80.         BoxEvent(&box_status,&event);
  81.      
  82.         /* Check it out */
  83.         if(BoxStateChange((VOID *) (&box_status))) {
  84.            int choice[10],num;
  85.            num = ExtractBoxSelection((VOID *) (&box_status),
  86.                                          choice);
  87.            LinkEditMenuChoice(&link_edit_status,num,choice);
  88.           }
  89.         continue;
  90.        }
  91.  
  92.     }
  93. }
  94.  
  95. BoxSetUp(data)
  96.  
  97. BoxData *data;
  98.  
  99. {
  100.   data->root = DefaultRootWindow(dpy);
  101.   data->x =  BOX_X_OFFSET * WidthMM;
  102.   data->y = BOX_Y_OFFSET * HeightMM;
  103.   data->width = 166.36; 
  104.   data->height = 191.69; 
  105.   data->border = BOX_BORDER;
  106.  
  107.   data->title_present = BOX_YES;
  108.   data->message_present = BOX_YES;
  109.   data->urgent_present = BOX_YES;
  110.   data->do_not_map = BOX_NO;
  111.  
  112.   strcpy(data->title,"Link Editor");
  113.   strcpy(data->message,"Look here for messages.");
  114.   strcpy(data->font,"9x15");
  115.  
  116.   data->arg = (VOID *) NULL;
  117. }
  118.  
  119. LinkSetUp(data)
  120.  
  121. LinkData *data;
  122.  
  123. {
  124.   data->root = box_status.TopWindow; 
  125.   data->x = 3.169; 
  126.   data->y = 6.856; 
  127.   data->width = 160.022; 
  128.   data->height = 113.379; 
  129.   data->border = LINK_BORDER;
  130.  
  131.   data->title_present = LINK_NO;
  132.   data->message_present = LINK_YES;
  133.   data->urgent_present = LINK_YES;
  134.  
  135.   data->xruler = LINK_NO;  /* Show ruler */
  136.   data->yruler = LINK_NO;
  137.   data->xscale = 1.0;
  138.   data->yscale = 1.0;
  139.   strcpy(data->data_font,"6x10");
  140.  
  141.   strcpy(data->title,"Link Title");
  142.   strcpy(data->message,"Link Message");
  143.   strcpy(data->font,"9x15");
  144.  
  145.   data->gray = 0.7;
  146. }
  147.  
  148. LinkEditSetUp(data)
  149. LinkEditData *data;
  150. {
  151. }
  152.  
  153.  
  154.